package com.tedu.review.test;

/**
 *                     普通类   抽象类   接口类
 *                        【关系】    【特点】
 *      类与类              继承       只能单继承、可多层继承
 *      类与抽象类           继承       可以单继承，不可以多继承
 *      抽象类与抽象类        继承       只能单继承、可多层继承
 *      类与接口             实现       可以单继承，也可以多实现
 *                                    并且继承同时实现多个接口
 *      接口与接口            继承       可以单继承，可以多继承
 */
/*作业1：抽象类与接口的区别与关系？简答*/
/*      关系：
        1.抽象类和接口都不能被实例化；
        2.抽象类和接口都具有抽象方法；
        3.抽象类和接口都是为多态作准备，都用于其他类实现。
        区别处：
        1.抽象类继承自Object类，接口不继承Object类；
        2.抽象类有构造器，接口没有构造器；
        3.抽象类有普通成员变量和常量，接口内只能有常量，用public static final修饰且必须赋初值；
        4.抽象类中有抽象方法也可以有普通方法，接口中只能有抽象方法，用public abstract修饰；
        5.抽象类中可以有静态方法，接口中不可以有静态方法；
        6.抽象类单继承其他类，多实现其他接口，接口多继承其他接口，但不能实现接口和继承其他类。*/

//5.接口与接口：继承     ---可以单继承，可以多继承
interface Loo{}        interface Foo{}
interface Voo extends Loo,Foo{}

//4.类与接口:实现  --------可以单继承，也可以多实现
//interface Loo{}        interface Foo{}
//class Joo{}
//class Voo extends Joo implements Loo,Foo{}

//3.抽象类与抽象类：继承-只能单继承、可多层继承
//abstract class Loo{}
//abstract class Voo extends Loo{}
//abstract class Uoo extends Voo{}

//2.类与抽象类：继承
//abstract class Uoo{}    abstract class Voo{}
//class Loo extends Uoo{}

//1.类与类：继承---单继承，可以多层继承
//class Uoo{}
//class Loo extends Uoo{}
//class Voo extends Loo{}

public class 关系 {
}